#include <iostream>
#include <unistd.h>
#include <signal.h>
#include <unistd.h>

using namespace std;

int cnt = 0;
int n = 0;

void handler(int signo)
{
    alarm(2);
    // n = alarm(0);
    cout << "result: " << n << endl;
    // std::cout << "get a signo : " << signo << "alarm : " << cnt  << std::endl;
    // exit(0);
}

int main()
{
    signal(14, handler);
    cout << "pid: " << getpid() << endl;
    alarm(2);

    while(true)
    {
        // cnt++;
        sleep(1);
        cout << "running ..." << endl;
    }

    // signal(11, handler);

    // int a = 10;
    // a /= 0;

    // int *p = nullptr;
    // *p = 100;


    // signal(SIGABRT, handler);
    // abort();
    // while(1)
    // {
    //     std::cout <<" I am running " << std::endl;
    //     sleep(1);
    // }
    // while(1)
    // {
    //     raise(2);
    //     sleep(1);
    // }
    return 0;
}

// static void Usage(const std::string &proc)
// {
//     std::cout << "\nUsage: " << proc << " -signumber process\n" << std::endl;
// }

// void handler(int signo)
// {
//     std::cout << "获得一个" << signo << "号信号" << std::endl;
//     // exit(1);
// }

// // ./process -9 12345
// int main(int argc, char *argv[])
// {
//     if(argc != 3)
//     {
//         Usage(argv[0]);
//         exit(0);
//     }

//     int signumber = std::stoi(argv[1]+1);
//     int processpid = std::stoi(argv[2]);

//     kill(processpid, signumber);


//     // signal(2, handler);
//     // signal(19, handler);
//     // signal(20, handler);
//     // signal(3, handler);
//     // signal(9, handler); // 9号信号，不可被自定义捕捉
//     // while(true)
//     // {
//     //     std::cout << "running...., pid : " << getpid() << std::endl;
//     //     sleep(1);
//     // }
// }